package com.whfc.wxmp.api.safety.service;

import com.whfc.common.result.ListData;
import com.whfc.common.result.PageData;
import com.whfc.safety.dto.*;
import com.whfc.safety.param.SafetyDangerAddExtParam;
import com.whfc.safety.param.SafetyDangerCheckAddParam;
import com.whfc.safety.param.SafetyDangerControlCompleteParam;
import com.whfc.safety.param.SafetyDangerEditExtParam;

/**
 * @Description 危大工程
 * @Author hw
 * @Date 2021-08-20 9:58
 * @Version 1.0
 */
public interface WxSafetyDangerService {

    /**
     * 危大工程台账列表
     *
     * @param deptId
     * @param state
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageData<SafetyDangerDTO> list(Integer deptId, Integer state, Integer pageNum, Integer pageSize);

    /**
     * 查询当前进度、施工旁站、一般验收、排查记录
     *
     * @param dangerId
     * @param type
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageData<SafetyDangerExtDTO> dangerExt(Integer dangerId, Integer type, Integer pageNum, Integer pageSize);

    /**
     * 新增前进度、施工旁站、一般验收、排查记录
     *
     * @param param
     * @param phone
     */
    void dangerAddExt(SafetyDangerAddExtParam param, String phone);

    /**
     * 修改前进度、施工旁站、一般验收、排查记录
     *
     * @param param
     */
    void dangerEditExt(SafetyDangerEditExtParam param);

    /**
     * 删除当前进度、施工旁站、一般验收、排查记录
     *
     * @param dangerId
     * @param extId
     * @param type
     */
    void dangerExtDel(Integer dangerId, Integer extId, Integer type);

    /**
     * 问题隐患统计
     *
     * @param dangerId
     * @return
     */
    SafetyDangerCheckNumDTO dangerCheckNum(Integer dangerId);

    /**
     * 问题隐患列表
     *
     * @param dangerId
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageData<SafetyCheckDTO> dangerCheckList(Integer dangerId, Integer pageNum, Integer pageSize);

    /**
     * 问题隐患详情
     *
     * @param checkId
     * @return
     */
    SafetyCheckDescDTO dangerCheckDesc(Integer checkId);

    /**
     * 新增问题隐患
     *
     * @param param
     * @param phone
     */
    void dangerCheckAdd(SafetyDangerCheckAddParam param, String phone);

    /**
     * 管控要点
     *
     * @param dangerId
     * @return
     */
    ListData<SafetyDangerControlDTO> dangerControlList(Integer dangerId);

    /**
     * 提交管控要点状态
     *
     * @param param
     */
    void dangerControlComplete(SafetyDangerControlCompleteParam param);
}
